import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

// 引入vuex持久化插件
import createPersistedState from "vuex-persistedstate";

const files = require.context('./extends', true, /\.js/)

// 动态引入 vuex 模块
let _v = {};
files.keys().forEach(key => {
    _v[key.split('./')[1].split('.')[0]] = files(key).default;
})


export default new Vuex.Store({
    // 调用模块化里的数据
    modules: {
        extends: {
            // 命名空间 (模块化中必不可少)， 命名空间的作用：为了让当前vuex模块里面的状态名和函数名和其他空间的命名不产生冲突
            namespaced: true,
            modules: _v,
        }

    },

    /* vuex数据持久化配置 */
    plugins: [
        createPersistedState({
            // 存储方式：localStorage、sessionStorage、cookies
            storage: window.sessionStorage,
            // 存储的 key 的key值
            key: "store",
            render(state) {
                // 要存储的数据：本项目采用es6扩展运算符的方式存储了state中所有的数据
                return { ...state };
            }
        })
    ]
})
